The present invention relates to mobile technology, and more particularly to methods and apparatuses for detecting power consumption of a mobile unit and correlating the detected power consumption with other detected conditions.
An increasing number of portable electronic devices are finding there way into the marketplace. Such devices typically rely on one or more batteries to supply power for their operation, and so power consumption of the device is an important aspect of the design.
The amount of power consumed by any given device can vary depending upon operating conditions. This is especially so for mobile communications equipment. It is therefore very important, when developing mobile terminals and mobile platforms, to monitor the amount of power being consumed by the device. This is true not only for steady state conditions when the mobile terminal is attached to a communications network, but also for other times such as when the mobile terminal is running an application.
Today external measuring devices are used for making power consumption measurements. Examples of such devices are multimeters, oscilloscopes and data acquisition equipment. The instrument vendors that make the power measurement devices usually provide application information explaining how to measure power consumption in mobile terminals. The measurement set-ups are often complicated to operate and measurement errors are easily introduced.
One goal of mobile terminal design is to achieve lower power consumption whenever possible. Most of the functionality for reducing power consumption in a mobile terminal is controlled by software. There are often errors related to this software control on all levels and in all phases of software development. Like any software, the software control for power reduction needs to be tested to enable design errors to be detected and then corrected. This “debugging” of the software is typically performed at a functional level by the programmer. However, verification of the power saving control is often neglected due to lack of measuring devices and because of the difficulties associated with obtaining proper measurement results.
Mobile terminals typically include a capability to generate debug printouts that inform about what the software is doing in real time. The software developers use these printouts when verifying the functionality.
Mobile terminals typically also include “fuel gauge” circuitry that is used for battery capacity estimation. This circuitry measures the electric charge going into and out of the battery. The accuracy for the measurements performed by the fuel gauge circuitry is often improved from one design to the next.
Mobile terminals also typically include a non-volatile memory. An area of this non-volatile memory is usually allocated for storing configuration and calibration parameters, the so-called Global Data (GD) parameters.
Existing solutions to the power consumption monitoring problem have a synchronization problem. Measurements are performed with separate external measuring devices. When comparing the measurements with the debug printouts from the terminal it is necessary to align the information in some way so that the measured power can be correlated with what the software was doing at the time. This is usually done manually by comparing the time stamps from the measurements with the time stamps in the debug printouts. Because of the large amount of information contained in the debug printouts, it is often very difficult to identify exactly which particular line of the printout is connected to for example a rise in power consumption.
Measuring the power consumption needs special equipment and is usually done in the lab area. Because of the cost of the equipment, it is not readily available for use by each individual software developer. The measurement equipment also usually requires certain skills in order to get accurate measurements.
Even if the problems of measurement equipment availability and correlation of power measurement results with debug printout information can be overcome, there is another problem in that it is difficult to perform power consumption measurements on a mobile terminal that is moving around in a network because the measurement devices are usually designed for stationary lab use. However, it is desirable to be able to take measurements on a mobile terminal that is moving around within a communications network because such measurements would be more representative of real-world conditions that include varying signal quality, as well as changing temperature and humidity conditions, all of which affect power usage.
When one organization is responsible for supplying a common mobile platform to a number of customers who independently use it as a basis for developing a final product, that organization is faced with the additional problem of comparing measurement results supplied by different mobile platform customers using a large variety of measurement setups.
U.S. Pat. No. 6,049,879 describes diagnostics to identify power consumption of devices present on a target terminal, such as a personal computer. In either an automatic or manual mode, the target terminal sets the devices to operate at defined power levels and measures the power consumption of the device at that level. In a monitoring mode, the described arrangement permits a system operator to audit power state changes of devices in a target terminal during normal operation. This arrangement has drawbacks. For example, the taking of power measurements is tied to either a command that sets a known state within the terminal or a detected change of state within the terminal. Such techniques are not very useful for mobile terminals, however, because they fail to detect changes in power consumption that are associated with things such as temperature, hardware failure, network settings, electrical interference, humidity, and the like. In a complex system, the number of states and dependencies between states is enormous, making it effectively impossible to debug such a system by applying the techniques disclosed in U.S. Pat. No. 6,049,879.
EP 149411 describes systems and methods for profiling the power consumption of software instructions executing on a processor. A power measurement circuit records power consumption levels of a processor executing various software instructions. A profiling tool tracks and identifies the instructions being executed on the processor and generates an association between the instructions and the power consumed during execution of those instructions. Thus, the disclosed technique involves synchronizing power consumption measurements with the execution of instructions. For the same reasons stated above, such a technique is not useful for debugging complex systems such as a mobile terminal, in which changes in power consumption are not associated with parameters that can be controlled by the tester.
It is therefore desirable to provide power measurement methods and apparatuses that are applicable to a mobile terminal.